Linux File Authority

리눅스 퍼미션, 권한 (chmod, chown, umask) : 네이버 블로그
필드의 첫 번째 문자; 개체의 유형(파일 종류)
-: 파일
d: 디렉토리
l: 링크
c: 문자 장치(Character Device)
b: 블록 장치(Block Device)
n: 네트워크 장치(Network Device)
문자 3개의 권한
- r: 읽기 권한
- w: 쓰기 권한
- x: 실행 권한(s로 표기되는 경우, SUID or SGID 설정 됨)
(권한이 없는 경우 ' - '로 표기)
개체의 소유자, 소유한 그룹, 시스템의 다른 사용자 순으로 권한을 표기
umask
사용자가 만든 파일이나 디렉토리에 대한 기본 권한을 설정
umask
└─$ umask
022
umask는 4자리로 구성되어 있으며( [0]022 )
첫 번째 숫자는 스티키 비트(Sticky bit)라는 특수한 보안 기능을 나타내고
다음 세 자리 숫자는 파일이나 디렉토리에 대한 umask의 8진수 값을 나타낸다.

umask는 개체에 대하여 모든 권한에서 빼기를 한 값으로 권한을 부여한다.
file(666)에 umask(022)를 빼줄 경우, 644 권한으로 파일을 생성
file은 666으로 directory는 777로 default 권한을 부여하고 umask 처리한다.


umask는 /etc/profile 시동 파일에 저장하거나, /etc/login.defs 에서 기본설정한다.
└─$ cat /etc/login.defs | grep UMASK
# UMASK Default "umask" value.
# UMASK is the default umask value for pam_umask and is used by
# 022 is the "historical" value in Debian for UMASK
# If USERGROUPS_ENAB is set to "yes", that will modify this UMASK default value
UMASK 022
# If HOME_MODE is not set, the value of UMASK is used to create the mode.
umask <new mask value>
chmod
이미 권한이 부여된 파일에 대한 권한 변경
chmod <options> <mode> <file>
mode는 8진수 혹은 기호 모드를 이용해서 지정할 수 있다.

[ugoa...][+-=][rwxXstugo...]
u 사용자
g 그룹
o 다른 사용자(모두)
a 위의 모든 사용자

+ 권한 추가
- 권한 제거
= 권한 설정

r, w, x
X 개체가 디렉토리이거나 이미 실행 권한일 있을 때만 실행 권한 설정 가능
s 실행 권한에 UID 혹은 GID 설정
t 프로그램의 텍스트를 저장
u 소유자의 권한을 설정
g 그룹의 권한을 설정
o 다른 사용자의 권한을 설정

option
-R 디렉토리에 대해 재귀적으로 변경 작업 수행(와일드 카드 사용 가능)
chown & chgrp
chown: 파일의 소유자 변경
chgrp: 파일의 소유 그룹 변경
chown <options> owner[.group] <file>
# ex
chown root.wheel file.txt
chown csian. file.txt
chgrp <new group> <file>
소유자와 소유 그룹의 이름이 같은 경우 그룹 이름 생략해도 같이 변경

option
-R: 재귀적으로 디렉토리 내 파일의 소유권 변경
-h: 파일에 심볼릭 링크된 모든 파일의 소유권까지 변경

어떤 소유자던지 파일의 기본 그룹을 바꿀 수 있지만, 해당 사용자가 파일의 원래 그룹과 바꿀려는 그룹의 구성원이어야 한다